package vcp.client.GUI.events;

import java.util.EventObject;

import org.joda.time.DateTime;

/**
 * 
 * @author VCP team
 *         <p>
 *         data validation
 *         </p>
 */
public class ValidationDescriptionEvent extends EventObject
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	// ****************************************************************************************************************************
	// Setter-Getter methods
	// ****************************************************************************************************************************
	/** car number **/
	private final Integer carID;

	public Integer getCarID ()
	{
		return this.carID;
	}

	/** user id number **/
	private final Integer ID;

	public Integer getID ()
	{
		return this.ID;
	}

	/** user password **/
	private final String password;

	public String getPassword ()
	{
		return this.password;
	}

	/** mail address **/
	private final String eMail;

	public String geteMail ()
	{
		return this.eMail;
	}

	/** date instance **/
	private final DateTime date;

	public DateTime getDate ()
	{
		return this.date;
	}

	/**
	 * Main Constructor
	 * 
	 * @param source
	 * @param password
	 * @param ID
	 * @param carID
	 * @param email
	 * @param date
	 */
	private ValidationDescriptionEvent ( Object source, String password, Integer ID, Integer carID, String email, DateTime date )
	{
		super(source);
		this.ID = ID;
		this.password = password;
		this.carID = carID;
		this.eMail = email;
		this.date = date;
	}

	/**
	 * Constructor Type of validation builders
	 * 
	 * @param source
	 * @param ID
	 * @param password
	 */
	public ValidationDescriptionEvent ( Object source, Integer ID, String password )
	{
		this(source, password, ID, null, null, null);
	}

	/**
	 * Constructor
	 * 
	 * @param source
	 * @param ID
	 * @param carID
	 */
	public ValidationDescriptionEvent ( Object source, Integer ID, Integer carID )
	{
		this(source, null, ID, carID, null, null);
	}

	/**
	 * Constructor
	 * 
	 * @param source
	 * @param carID
	 */
	public ValidationDescriptionEvent ( Object source, Integer carID )
	{
		this(source, null, null, carID, null, null);
	}

	/**
	 * Constructor
	 * 
	 * @param source
	 * @param email
	 * @param date
	 */
	public ValidationDescriptionEvent ( Object source, String email, DateTime date )
	{
		this(source, null, null, null, email, date);
	}
}
